package com.service;

import com.domain.entity.Cart;
import com.domain.req.AddCartReq;
import com.domain.req.PageReq;
import com.domain.req.UpdateGoodsSumReq;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * @author caishenao
 * @description 针对表【cart】的数据库操作Service
 * @createDate 2023-10-12 20:12:25
 */
public interface CartService {

    /**
     * 添加商品到自己的购物车
     *
     * @param addCartReq 添加的请求
     */
    void addCart(AddCartReq addCartReq);

    /**
     * 查询本人所有购物车信息
     *
     * @return 本人购物车信息
     */
    List<Cart> list();

    /**
     * 根据购物车id删除购物车信息
     *
     * @param id 购物车id
     */
    void deleteById(Integer id);

    /**
     * 清空购物车
     */
    void deleteAll();

    /**
     * 修改商品数量
     *
     * @param updateGoodsSumReq 修改商品数量请求
     */
    void updateGoodsSum(UpdateGoodsSumReq updateGoodsSumReq);

    /**
     * 分页查询购物车信息
     *
     * @param pageReq 分页请求
     * @return 分页类型的购物车信息
     */
    PageInfo<Cart> pageList(PageReq pageReq);

    /**
     * 获取本用户的总钱数
     *
     * @return 购物的总钱数
     */
    Double getTotalMoney();

}
